package cn.funeralobjects.upms.repository;

import cn.funeralobjects.common.repository.*;
import cn.funeralobjects.upms.entity.EUser;

/**
 * User的repository接口
 *
 * @author FuneralObjects
 * Create date: 2019-08-09 17:17
 */
public interface UserRepository extends
        EntityRepository<EUser, Integer>,
        DelSaltRepository<EUser, Integer>,
        EnableRepository<EUser, Integer>,
        CodeRepository<EUser, Integer>,
        CommitRepository<Integer> {
//    /**
//     * 判断是否存在相同的username和delSalt
//     *
//     * @param username 用户名
//     * @param delSalt  删除盐
//     * @return true - 存在
//     */
//    boolean existsAllByNameAndDelSalt(String username, Integer delSalt);

    /**
     * 判断是否存在数据
     *
     * @param code    编码
     * @param delSalt 删除盐
     * @return true - 存在
     */
    boolean existsAllByCodeAndDelSalt(String code, Integer delSalt);

//    /**
//     * 判断是否存在用户名
//     *
//     * @param username 用户名
//     * @param id       排除的用户id
//     * @param delSalt  删除盐
//     * @return true - 存在
//     */
//    boolean existsAllByNameAndIdNotAndDelSalt(String username, Integer id, Integer delSalt);
//
//    /**
//     * 通过用户名查找用户
//     *
//     * @param username 用户名
//     * @param delSalt  删除盐
//     * @return 用户实体数据
//     */
//    Optional<EUser> findUserByNameAndDelSalt(String username, Integer delSalt);
//
//    /**
//     * 更新用户名
//     *
//     * @param username 用户名
//     * @param userId   用户id
//     */
//    @Modifying
//    @Query("UPDATE EUser SET name = :username WHERE id = :userId AND delSalt = :delSalt")
//    void updateUsernameByIdAndDelSalt(String username, Integer userId, Integer delSalt);

}
